1. Field of the Invention
The present invention relates generally to the positioning and displaying of fonts using a computer system. More particularly, the present invention is directed to quantizing multi-bit glyph bitmaps so that they can be displayed efficiently.
2. Description of the Related Art
Characters that are laid out on a printed page or displayed on a screen are made up of glyphs. Glyphs are typically positioned during layout at non-integral (that is, fractional) locations in what is known to those in the art as “ideal space.” For example, the word “that” may be laid out on a line like so:                Place the “t” at position (39.3, 123.7)        Place the “h” at position (42.7, 123.7)        Place the “a” at position (45.2, 123.7)        Place the “t” at position (47.1, 123.7).        
Traditionally, glyphs have been represented by 1-bit bitmaps drawn based on integer pixel boundaries. Positioning the bitmaps at locations other than the pixel boundaries is not desirable, because it leads to aliasing. Therefore, when the 1-bit bitmaps such as those in the example above are positioned on the screen, the positions are rounded to integer boundaries. This position of the bitmaps as displayed is referred to by those of skill in the art as their position in the “device space.” In the device space where only integer pixel positions are used, the example above becomes:                Place the 1-bit glyph representing “t” at position (39, 124)        Place the 1-bit glyph representing “h” at position (43, 124)        Place the 1-bit glyph representing “a” at position (45, 124)        Place the 1-bit glyph representing “t” at position (47, 124).These bitmaps are cached, so that they can be reused. For example, the bitmap that was used to place the first “t” at (39, 124) can be reused to place the second “t” at (47, 124).        
In the past, additional bits in the glyph bitmap have been used to provide antialiasing for glyphs. Glyphs that are antialiased can be positioned at fractional positions with less loss of quality than non-antialiased glyphs. However, for each fractional position, a different bitmap must be used for a given glyph. That is, a glyph positioned at (392, 104.1) is represented by a different bitmap than is the same glyph positioned at (39.8, 104.7). Caching the bitmaps for each fractional location of each glyph presents a significant drawback because of the associated memory usage required to do the caching. On the other hand, not caching the bitmaps means that the glyphs must be re-rendered whenever needed, sacrificing rendering speed.
Accordingly, there is a need for a system and method for displaying glyph bitmaps at non-integer pixel locations which preserves the speed and efficiency of the corresponding system for displaying 1-bit glyph bitmaps at integer pixel locations.”